﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JasRibbonApplicatie.Classes
{
    public class Gebruiker:gebruikers
    {
        private gebruikers gebruiker;
        
        public DateTimeOffset Aanmeldtijd { get; set; }
        public string Autologin { get; set; }
        public string Mail { get; set; }
        public DateTime Geboortedatum { get; set; }
        public string Gebruikersnaam { get; set; }
        public int Gebruiker_id { get; set; }
        public string Gsm { get; set; }
        public string Naam { get; set; }
        public string Nr { get; set; }
        public int Postcode_id { get; set; }
        public postcodes Postcode
        {
            get
            {
                return Queries.GetPostcodeByPostcodeId(Postcode_id);
            }
        }
        private int _rechten_id = 0;
        public int Rechten_id
        {
            get
            {
                return _rechten_id;
            }
        }

        public rechten Rechten
        {
            get
            {
                return Queries.GetRechtenById(_rechten_id);
            }
            set
            {
                _rechten_id = value.rechten_id;
                Queries.SetRechtenByGebruiker_id(Gebruiker_id, _rechten_id);
            }
        }
        public string Straat { get; set; }
        public string Telefoon { get; set; }
        public string Voornaam { get; set; }
        public string Wachtwoord { get; set; }
        public Boolean IsRaadVanBestuur
        {
            get
            {
                return Queries.IsRaadVanBestuur(Gebruiker_id);
            }
            set
            {
                Queries.SetRaadVanBestuur(Gebruiker_id,value);
            }
        }
        public string BestuursFunctie
        {
            get
            {
                return Queries.GetBestuursFunctieById(Gebruiker_id);
            }
            set {
                if(this.IsRaadVanBestuur){
                    Queries.SetBestuurdersFunctieById(Gebruiker_id, (Queries.Functie)Enum.Parse(typeof(Queries.Functie), value));
                }
            }
        }
        public Boolean IsAlgemeneVergadering
        {
            get
            {
                return Queries.IsAlgemeneVergadering(Gebruiker_id);
            }
            set
            {
                Queries.SetAlgemeneVergadering(Gebruiker_id, value);
            }
        }
        public Boolean IsMagazijnier
        {
            get
            {
                return Queries.IsMagazijnier(Gebruiker_id);
            }
            set
            {
                Queries.SetMagazijnier(Gebruiker_id, value);
            }
        }

        public string NaamVoornaam {
            get
            {
                return gebruiker.naam + " " + gebruiker.voornaam;
            }
        
        }
        public string VoornaamNaam
        {
            get
            {
                return gebruiker.voornaam + " " + gebruiker.naam;
            }

        }

        public Gebruiker(gebruikers gebr)
        {
            this.gebruiker = gebr;
            this.Aanmeldtijd = gebruiker.aanmeldtijd;
            this.Autologin = gebruiker.autologin;
            this.Mail = gebruiker.email;
            this.Geboortedatum = gebruiker.geboortedatum;
            this.Gebruikersnaam = gebruiker.gebruikersnaam;
            this.Gebruiker_id = gebruiker.gebruiker_id;
            this.Gsm = gebruiker.gsm;
            this.Naam = gebruiker.naam;
            this.Nr = gebruiker.nr;
            this.Postcode_id = gebruiker.postcode_id;
            this._rechten_id = gebruiker.rechten_id;
            this.Straat = gebruiker.straat;
            this.Telefoon = gebruiker.telefoon;
            this.Voornaam = gebruiker.voornaam;
            this.Wachtwoord = gebruiker.wachtwoord;
        }

        

        

       
    }
}
